package com.aspire.moss.portal.desktop;
/**
 * 此接口控制workspace里的ui
 * @author Administrator
 *
 */
public interface WorkspaceController  extends DragScroller{
	/**
	 * 得到当前在哪个屏幕
	 * @return
	 */
	int getCurrentScreen();
	/**
	 * 当前屏幕的总数
	 * @return
	 */
	int getScreens();
	/**
	 * 移动屏幕
	 * 
	 * @param screen
	 */
	void scrollScreen(int screen);
	/**
	 * 添加一个程序
	 * 
	 * @param appInfo
	 */
	void addAppView(AppInfo appInfo);
	
	/**
	 * 添加一个新程序,里面没有任何布局信息
	 * 
	 * @param appInfo
	 */
	void addNewAppView(AppInfo appInfo);

	/**
	 * 删除一个程序
	 * @param appInfo
	 * @param visible 视图的状态
	 * @return
	 */
	boolean removeAppView(AppInfo appInfo , int visible);
	
	/**
	 * 移动一个应用
	 * @param appInfo
	 * @param toAppInfo
	 * @return
	 */
	boolean moveAppView(AppInfo appInfo , AppInfo target);
	
	/**
	 * 两个应用交换位置
	 * @param appInfo
	 * @param target
	 * @return
	 */
	boolean swapAppView(AppInfo appInfo , AppInfo target);
	
	/**
	 * 应用还原
	 * @param appInfo
	 * @return
	 */
	boolean resetAppView(AppInfo appInfo);

	/**
	 * 添加一个屏幕
	 */
	void addCelllayoutView();
	
	/**
	 * 锁定workspace
	 * @param con
	 */
	void lockWorkspace();
	
	/**
	 * 锁定workspace
	 * @param con
	 */
	void unlockWorkspace();
	/**
	 * 返回workspace的状态
	 * @return
	 */
	boolean isLockWorkspace();
	
	/**
	 * 找到所在的屏幕布局
	 * @param screenid
	 * @return
	 */
	CellLayout findScreen(int screenid);
	
	/**
	 * 如果workspace里的子的cellLayout里一个cellview也没有,把它删除
	 */
	void resetWorkspace();
}

